home *** CD-ROM | disk | FTP | other *** search
/ Aminet 32 / Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso / Aminet / dev / lang / Python152_Src.lha / Python152_Source / Amiga / rexxvars.asm < prev    next >
Assembly Source File  |  1997-01-01  |  4KB  |  229 lines

  1.  
  2.     SECTION rexxvars,CODE
  3.  
  4.     XDEF    CheckRexxMsg,@CheckRexxMsg,_CheckRexxMsg
  5.     XDEF    GetRexxVar,@GetRexxVar,_GetRexxVar
  6.     XDEF    SetRexxVar,@SetRexxVar,_SetRexxVar
  7.  
  8.  
  9. _CheckRexxMsg:
  10.     move.l  4(sp),a0
  11. @CheckRexxMsg:
  12. CheckRexxMsg:
  13.     movem.l d2/a2/a6,-(sp)
  14.     move.l  a0,a2
  15.     move.l  4.w,a6
  16.     lea     rexxlibTxt(pc),a1
  17.     moveq   #0,d0
  18.     jsr     -$228(a6)
  19.     move.l  d0,d2
  20.     beq.b   skip
  21.     move.l  d0,a1
  22.     jsr     -$19E(a6)
  23.     moveq   #0,d0
  24.     cmp.l   $18(a2),d2
  25.     bne.b   skip
  26.     move.l  $14(a2),d1
  27.     beq.b   skip
  28.     move.l  a2,a0
  29.     move.l  d2,a6
  30.     jsr     -$A8(a6)
  31. skip    tst.l   d0
  32.     movem.l (sp)+,d2/a2/a6
  33.     rts
  34.  
  35. _GetRexxVar:
  36.     movem.l 4(sp),a0/a1
  37.     move.l  12(sp),4(sp)
  38. @GetRexxVar:
  39.     bsr.b   GetRexxVar
  40.     bne.b   lab58
  41.     move.l  4(sp),a0
  42.     move.l  a1,(a0)
  43. lab58   rts
  44.  
  45. GetRexxVar:
  46.     movem.l d2/d3/a2-a6,-(sp)
  47.     move.l  a0,a2
  48.     move.l  a1,a3
  49.     bsr.b   CheckRexxMsg
  50.     beq.b   lab96
  51.     move.l  $18(a2),a6
  52.     move.l  $14(a2),a0
  53.     jsr     -$6C(a6)
  54.     move.l  a0,a4
  55.     move.l  a3,a0
  56.     bsr     lab13A
  57.     bne.b   lab98
  58.     move.l  a1,a2
  59.     move.l  d1,d2
  60.     move.l  a4,a0
  61.     move.l  d2,d0
  62.     moveq   #0,d1
  63.     jsr     -$48(a6)
  64.     moveq   #0,d0
  65.     addq.l  #8,a1
  66.     tst.l   d1
  67.     beq.b   lab98
  68.     sub.l   a1,a1
  69.     bra.b   lab98
  70.  
  71. lab96   moveq   #10,d0
  72. lab98   tst.l   d0
  73.     movem.l (sp)+,d2/d3/a2-a6
  74.     rts
  75.  
  76. _SetRexxVar:
  77.     movem.l 4(sp),a0/a1
  78.     move.l  $10(sp),d0
  79.     move.l  12(sp),4(sp)
  80. @SetRexxVar:
  81.     move.l  d0,d1
  82.     move.l  4(sp),d0
  83. SetRexxVar:
  84.     movem.l d2-d7/a2-a6,-(sp)
  85.     lea     -12(sp),sp
  86.     move.l  a0,a2
  87.     move.l  a1,a3
  88.     move.l  d0,a5
  89.     move.l  d1,d3
  90.     lea     lab120(pc),a0
  91.     move.l  sp,a1
  92.     bsr     lab1F2
  93.     move.l  a2,a0
  94.     bsr     CheckRexxMsg
  95.     beq.b   lab124
  96.     move.l  $18(a2),a6
  97.     moveq   #9,d0
  98.     cmp.l   #$FFFF,d3
  99.     bgt.b   lab126
  100.     move.l  $14(a2),a0
  101.     jsr     -$6C(a6)
  102.     move.l  a0,a4
  103.     move.l  a3,a0
  104.     bsr.b   lab13A
  105.     bne.b   lab126
  106.     move.l  a1,a2
  107.     move.l  d1,d2
  108.     move.l  a4,a0
  109.     move.l  d2,d0
  110.     jsr     -$42(a6)
  111.     move.l  d0,d4
  112.     move.l  a4,a0
  113.     move.l  a5,a1
  114.     move.l  d3,d0
  115.     bsr     lab1A4
  116.     beq.b   lab120
  117.     move.l  a4,a0
  118.     move.l  d0,a1
  119.     move.l  d4,d0
  120.     jsr     -$54(a6)
  121.     moveq   #0,d0
  122.     bra.b   lab126
  123.  
  124. lab120  moveq   #3,d0
  125.     bra.b   lab126
  126.  
  127. lab124  moveq   #10,d0
  128. lab126  move.l  sp,a0
  129.     move.l  d0,-(sp)
  130.     bsr     lab212
  131.     move.l  (sp)+,d0
  132.     lea     12(sp),sp
  133.     movem.l (sp)+,d2-d7/a2-a6
  134.     rts
  135.  
  136. lab13A  movem.l d2/d3/a2/a3,-(sp)
  137.     moveq   #0,d2
  138.     moveq   #0,d3
  139.     jsr     -$120(a6)
  140.     move.l  a0,a1
  141.     move.l  a4,a0
  142.     bsr.b   lab1A4
  143.     move.l  d0,a2
  144.     beq.b   lab186
  145.     lea     8(a2),a1
  146.     move.w  4(a2),d0
  147.     move.l  a1,d1
  148. lab15A  cmp.b   #$2E,(a1)+
  149.     dbeq    d0,lab15A
  150.  
  151.     bne.b   lab174
  152.     exg     d1,a1
  153.     sub.l   a1,d1
  154.     move.l  a2,d3
  155.     move.l  a4,a0
  156.     move.l  d1,d0
  157.     bsr.b   lab1A4
  158.     move.l  d0,a2
  159.     beq.b   lab186
  160. lab174  lea     8(a2),a0
  161.     jsr     -$66(a6)
  162.     cmp.w   4(a2),d1
  163.     beq.b   lab188
  164.     moveq   #$28,d2
  165.     bra.b   lab188
  166.  
  167. lab186  moveq   #3,d2
  168. lab188  tst.l   d2
  169.     beq.b   lab198
  170.     move.l  a4,a0
  171.     move.l  a2,a1
  172.     bsr.b   lab1D8
  173.     move.l  a4,a0
  174.     move.l  d3,a1
  175.     bsr.b   lab1D8
  176. lab198  move.l  a2,a1
  177.     move.l  d3,d1
  178.     move.l  d2,d0
  179.     movem.l (sp)+,d2/d3/a2/a3
  180.     rts
  181.  
  182. lab1A4  movem.l d0/a1,-(sp)
  183.     addq.l  #8,d0
  184.     addq.l  #1,d0
  185.     jsr     -$72(a6)
  186.     movem.l (sp)+,d0/a1
  187.     beq.b   lab1D4
  188.     move.l  a0,-(sp)
  189.     clr.l   (a0)
  190.     move.w  d0,4(a0)
  191.     move.b  #2,6(a0)
  192.     clr.b   8(a0,d0.l)
  193.     addq.l  #8,a0
  194.     jsr     -$10E(a6)
  195.     move.l  (sp)+,a0
  196.     move.b  d0,7(a0)
  197. lab1D4  move.l  a0,d0
  198.     rts
  199.  
  200. lab1D8  move.l  a1,d1
  201.     beq.b   lab1F0
  202.     moveq   #1,d0
  203.     and.b   6(a1),d0
  204.     bne.b   lab1F0
  205.     move.w  4(a1),d0
  206.     addq.l  #8,d0
  207.     addq.l  #1,d0
  208.     jsr     -$78(a6)
  209. lab1F0  rts
  210.  
  211. lab1F2  move.l  a3,-(sp)
  212.     move.l  $14(a2),a3
  213.     move.l  a2,(a1)
  214.     movem.l $FC(a3),d0/d1
  215.     movem.l a0/a1,$FC(a3)
  216.     movem.l d0/d1,4(a1)
  217.     move.l  (sp)+,a3
  218.     rts
  219.  
  220. lab212  move.l  (a0),a1
  221.     move.l  $14(a1),a1
  222.     movem.l 4(a0),d0/d1
  223.     movem.l d0/d1,$FC(a1)
  224.     rts
  225.  
  226. rexxlibTxt       dc.b    'rexxsyslib.library',0,0
  227.  
  228.     END
  229.